The present invention relates to industrial control systems that employ a large number of controlled devices and, more particularly, to industrial control systems which utilize a single board computer (SBC) associated with and for controlling each controlled device.
Many system-type industrial installations, for example, power generating stations, employ a large number of controlled devices for effecting coordinated operation of the overall system. These controlled devices include, for example, motors, pumps, compressors, various types of electrically operated valves, transmissions, instruments, solenoids, relays, and the like. Each of these controlled devices has a particular set of logic functions or control signals and/or command sequences that must be effected to ensure proper device operation. These logic function signals and command sequences include, for example, enable signals, stand-by signals, turn-on signals, turn-off signals, run-up and run-down sequences, time delays, emergency stop signals, and various alarm condition signals.
In the past, coordinated control of the various devices has been achieved by manual operation and various types of semi-automatic and automatic control systems including electromagnetic relay systems, hard-wired solid-state logic systems, computer control systems in which the controlled devices are connected to and controlled from a central computer and, more recently, distributed computer control systems in which a single board computer is connected to each controlled device with each computer having a program dedicated to the particular controlled device.
While both types of computer-oriented control systems, that is, the central computer arrangement and the distributed computer arrangement, provide effective system control, a number of drawbacks are associated with the introduction of computer control within a control system.
In a large control system, e.g., a control system for a power generating installation, a substantial programming effort must be undertaken to provide software for each of the controlled devices within the system. In installations using a large central computer, this programming effort is lessened somewhat by the ready availability of sophisticated high-level program languages that permit a relatively unskilled system controller to structure the necessary control programs. These sophisticated languages oftentimes include subroutines, e.g., query prompters and graphic display subroutines, that assist and guide the system control personnel in structuring the programs.
On the other hand, single board computers are generally programmed in low-level assembly-type languages or machine language codes, and, as a consequence, many system users are reluctant to employ distributed single board computers because of the difficulty in obtaining or training personnel to program the computers. As a practical consequence, system users employing single board computers are dependent upon their computer suppliers or other consultants for these control programs.
Other drawbacks that are associated with distributed single board computer systems are that maintenance personnel, who are usually trained in programming, must have a large inventory of preprogrammed single board computers with which to conduct "remove and replace" type troubleshooting. Also, the replacement of a defective controlled device with an updated or modified replacement oftentimes requires that the control program within the associated control computer be modified toreflect the updated or modified control function and/or command sequence logic of the replacement device.
The time and cost problems associated with developing a control system having a large number of controlled devices with a single board computer for each device does not normally prevent this type of system from being used in newly designed industrial systems. However, the same time and cost factors can prevent, or at least inhibit, cost effective retrofitting of existing industrial installations with dedicated single board computers because of the time required to identify the logic control functions and control sequences of operating equipment and the downtime that may be required to prepare and test a dedicated program for each single board computer.
In the system disclosed in the copending application Ser. No. 37,189 filed May 8, 1979, now U.S. Pat. No. 4,253,148, an industrial control system having a plurality of controlled devices is provided with a single board computer connected to each device through an input/output interface. Each computer is controlled by a master or composite program that includes program steps adapted to achieve control and monitoring of all possible logic control functions and command sequences that exist within the system. A user alterable interconnection device (UAID) allows only those portions of the master program that relate to the logic control functions and/or control sequences of a particular controlled device to be operatively connected with the input/output ports associated with that device. As the single board computer continuously and successively loops through the master program, only those program steps that relate to the logic control functions and/or control sequences for the controlled device are operative, as determined by the UAID, to effect control and monitoring of the controlled device.
Once the logic control functions and command sequences for the various diverse controlled devices of a particular control system, for example, for a power generating plant, are established, only one master program is written to include all the logic control functions and command sequences for all the possible controlled devices within the system. The user alterable interconnection device may then be conveniently configured for each controlled device in a simple, straight-forward manner to easily adapt each single board computer to a particularly controlled device.
Each single board computer includes a central processor and its associated support circuitry, a programmable peripheral interface device (PPI) for interfacing the processor with a data highway and a central, supervisory computer, a program memory store that contains the master program (which is common to all the computers within the system), and a user alterable interface device (UAID) in the form of a field programmable read-only-memory (PROM) for operatively interconnecting those selected portions of the master program that relate to a particular controlled device with the input/output ports of that device.
Each master program for a particular control system includes sequentially arranged instructions which are designed to effect the various logic control functions and command sequences for every controlled device within the system. These instructions can cause the processor to, for example, query one or more input ports to determine the status of various sensor switches, query power lines to determine the presence or absence of power, perform various logical and computational operations, supply command signals to various output ports to effect control, and the like. The UAID is assigned a predetermined block of the available memory addresses, these addresses being termed "fictitious addresses". As the master program loops the central processor, operating in an indirect programming mode, it looks or refers to the UAID address for its input/output information. In single board computers that have not been adapted to a particular controlled device, each of the UAID addresses contain a nonfunctional address such as a preselected spare address or nonexistant address. In a single board computer that has been dedicated to a particular controlled device, selected locations within the UAID that relate to a particular logic control function and/or command sequence for the controlled device are provided with the actual addresses of the input/output ports associated with that device. As the master program loops, the portions of the master program that relate to or correspond to the logic control functions and/or command sequences of a particular controlled device address UAID locations that contain the actual addresses of the input/output ports of the controlled devices. In order to dedicate a single board computer to a particular device, all that is necessary is that the particular logic control function and/or command sequences for the device be identified and that the particular addresses within the UAID that relate to the so-identified portions of the program be provided with the actual input/output addresses of the program be provided with the actual input/output addresses of the controlled device.
In an average or representative application, it is contemplated that the master program may address upwardly of several hundred addresses within a UAID and only a few, perhaps 1-20%, of the available UAID addresses will contain actual input/output address information. Thus, the master program will continuously address a large number of UAID addresses and be operatively connected with only a few actual input/output ports selected by the UAID for the particular controlled device.